Основни алгоритми над серијама елемената
У претходном поглављу описали смо основне итеративне алгоритме у варијанти у којој су примењени на мале серије тако да су имплементирани без коришћења петљи. У овом поглављу ћемо исте алгоритме применити да дуже серије елемената (укључујући и серије чији број елемената није унапред познат). Предуслов за имплементацију таквих алгоритама је коришћење петљи (каже се и циклуса).
Елементи програмског језика
У језику Пајтон постоје две врсте петљи: while
и
for
.
Петља while
Општи облик петље while
је:
while uslov:
telo
У петљи while
испитује се вредност логичког израза
uslov
и уколико је он тачан, извршавају се наредбе задате
унутар тела петље, које се пише увучено. Дакле, услов петље се први пут
испитује пре извршавања тела петље. Када се тело изврши услов се поново
испитује и поступак се понавља све док се први пут не деси да услов није
испуњен. Свако извршавање тела петље називаћемо једном
итерацијом петље.
Петља for
Општи облик петље for
је:
for promenljiva in kolekcija:
telo
Петља for
се извршава тако што се променљивој
promenljiva
(која се назива контролна променљива)
редом додељују вредности из колекције и за сваку од тих вредности се и
извршавају наредбе које се налазе у телу петље.
Једна врста колекције која се често користи у for
петљи
је опсег (енгл. range
). Опсег може да се
зада помоћу једног, два или три параметра.
Опсег range(n)
представља целе бројеве од 0 до
n
, не укључујући n
. Тако следећи програм
исписује бројеве 0, 1, 2, 3 (сваки у посебном реду).
for i in range(4):
print(i)
Оваква врста петље се понекад назива и бројачка петља, нарочито ако
се променљива i
не користи у телу петље (на пример, када је
неку наредбу само потребно поновити одређени број пута). У следећем
програму се помоћу петље “броји до 3” (тело петље се понавља 3 пута),
због чега се петља и назива бројачком:
for i in range(3):
print('Zdravo!')
Опсег range(a, b)
представља целе бројеве од
a
до b
, не укључујући b
. Тако
следећи програм исписује бројеве 2, 3, 4, 5 (сваки у посебном реду).
for i in range(2, 6):
print(i)
Опсег range(a, b, c)
представља бројеве од
a
до b
са кораком c
, не
укључујући b
. При томе корак може да буде и негативан. Тако
следећи програм исписује бројеве 9, 7, 5, 3, 1 (сваки у посебном
реду).
for i in range(9, 0, -2):
print(i)
Прекиди петље
(break
и continue
)
Наредба break
у телу петље прекида извршавање петље.
Наредба continue
прекида извршавање тела петље (тј.
извршавање текуће итерације).